package routers

import (
	"config-client-v1/controller/admin"
	"config-client-v1/controller/api"
	"config-client-v1/middleware"
	"github.com/gin-gonic/gin"
)

func ApiRouterInit(r *gin.Engine) {
	apiRouters := r.Group("/api")
	apiRouters.Use(middleware.CheckApiLogin)
	{
		/*--- TEST ---*/
		apiRouters.Any("/excel/test", api.ExcelController{}.Excel) // 导出excel测试demo

		/*--- DEBUG 开发调试用 ---*/
		apiRouters.Any("/test", api.TestController{}.Test)                                   //
		apiRouters.Any("/frame_save_content", api.TestController{}.FrameSaveContent)         // 模拟生成帧内容参数
		apiRouters.Any("/modbus_db_save_content", api.TestController{}.ModbusDBSaveContent)  // 模拟生成modbus db内容参数
		apiRouters.Any("/frame_send_condition", api.TestController{}.FrameSendCondition)     // 模拟发送帧条件字段参数
		apiRouters.Any("/ppe_save_config", api.TestController{}.PPESaveConfig)               // 模拟生成PPE配置参数
		apiRouters.Any("/model_save_content", api.TestController{}.ModelSaveContent)         // 模拟生成PPE配置参数
		apiRouters.Any("/cmd0603_modify_content", api.TestController{}.Cmd0603ModifyContent) // 0603数据内容参数

		/*--- 登录态管理 ---*/
		apiRouters.Any("/do_login", api.LoginController{}.DoLogin)       // 登录
		apiRouters.Any("/check_token", api.LoginController{}.CheckToken) // 验证token

		/*--- 基本信息接口 ---*/
		apiRouters.Any("/login_info", api.ProjectController{}.LoginInfo)         // 查看登录信息
		apiRouters.Any("/page_group/list", admin.PageGroupController{}.List)     // 画面分组列表
		apiRouters.Any("/project/detail", api.ProjectController{}.ProjectDetail) // 工程详情

		/*--- 变量相关 ---*/
		apiRouters.Any("/variable/limiting_enable", admin.VariableController{}.LimitingEnable) // 限值启用设置
		apiRouters.Any("/variable/write", admin.VariableController{}.Write)                    // 变量写入; 发送帧发送
		apiRouters.Any("/variable/write_multi", admin.VariableController{}.WriteMulti)         // 变量写入; 发送帧发送

		apiRouters.Any("/variable/record_list", api.VariableController{}.RecordList)             // 变量值历史记录(全量)
		apiRouters.Any("/variable/slim_list", api.VariableController{}.VariablesSlimList)        // tag 变量获取
		apiRouters.Any("/variable/point_list", api.VariableController{}.VariablesPointList)      // tag 数据查询
		apiRouters.Any("/variable/point_list_v2", api.VariableController{}.VariablesPointListV2) // tag 数据查询
		apiRouters.Any("/variable/tendency_chart", api.VariableController{}.TendencyChart)       // tag 趋势图
		apiRouters.Any("/variable/shield", api.VariableController{}.Shield)                      // 变量屏蔽

		/*--- 报警相关 ---*/
		apiRouters.Any("/variable/alert_list", api.AlertController{}.AlertList)     // 限值报警列表
		apiRouters.Any("/alert/confirm", api.AlertController{}.AlertConfirm)        // 报警确认
		apiRouters.Any("/alert/audio_shield", api.AlertController{}.AudioShield)    // 是否屏蔽报警语音
		apiRouters.Any("/sys/alert_list", api.AlertController{}.SysAlertList)       // 系统报警列表
		apiRouters.Any("/sys/alert_confirm", api.AlertController{}.SysAlertConfirm) // 系统报警确认

		/*--- 报表和导出 (暂时未用到) ---*/
		apiRouters.Any("/fs/model_list", admin.FSController{}.ModelList)                // 模型列表
		apiRouters.Any("/excel/model_report", api.ExcelController{}.ModelReport)        // 模型报表列表
		apiRouters.Any("/excel/page_report_save", api.ExcelController{}.PageReportSave) // 报表保存
		apiRouters.Any("/excel/page_report_list", api.ExcelController{}.PageReportList) // 报表记录查看

		/*--- 手动日志 ---*/
		apiRouters.Any("/log/list", api.ProjectController{}.LogList)     // 日志列表
		apiRouters.Any("/log/save", api.ProjectController{}.LogSave)     // 手动创建日志
		apiRouters.Any("/log/export", api.ProjectController{}.LogExport) // 日志导出excel

		apiRouters.Any("/update_page_exp_data", api.ProjectController{}.UpdatePageExpData)  // 修改实验限值
		apiRouters.Any("/update_content_ceshi", api.ProjectController{}.UpdateContentCeshi) // 修改content_ceshi

	}
}
